【学习笔记】ns3 官方例程first.cc的理解
			
			
		 
		
		
			官方文档
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
   | #include "ns3/core-module.h" #include "ns3/network-module.h" #include "ns3/internet-module.h" #include "ns3/point-to-point-module.h" #include "ns3/applications-module.h"
  using namespace ns3; 
  NS_LOG_COMPONENT_DEFINE ("FirstScriptExample"); 
  int main (int argc, char *argv[]) {   CommandLine cmd;   cmd.Parse (argc, argv);       Time::SetResolution (Time::NS);    LogComponentEnable ("UdpEchoClientApplication", LOG_LEVEL_INFO);   LogComponentEnable ("UdpEchoServerApplication", LOG_LEVEL_INFO); 
    NodeContainer nodes;    nodes.Create (2); 
    PointToPointHelper pointToPoint;    pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("5Mbps"));   pointToPoint.SetChannelAttribute ("Delay", StringValue ("2ms")); 
    NetDeviceContainer devices;    devices = pointToPoint.Install (nodes); 
    InternetStackHelper stack;    stack.Install (nodes); 
    Ipv4AddressHelper address;    address.SetBase ("10.1.1.0", "255.255.255.0"); 
    Ipv4InterfaceContainer interfaces = address.Assign (devices); 
    UdpEchoServerHelper echoServer (9); 
    ApplicationContainer serverApps = echoServer.Install (nodes.Get (1));    serverApps.Start (Seconds (1.0));    serverApps.Stop (Seconds (10.0)); 
    UdpEchoClientHelper echoClient (interfaces.GetAddress (1), 9);    echoClient.SetAttribute ("MaxPackets", UintegerValue (1));    echoClient.SetAttribute ("Interval", TimeValue (Seconds (1.0)));    echoClient.SetAttribute ("PacketSize", UintegerValue (1024)); 
    ApplicationContainer clientApps = echoClient.Install (nodes.Get (0));    clientApps.Start (Seconds (2.0));    clientApps.Stop (Seconds (10.0)); 
 
    Simulator::Run ();    Simulator::Destroy ();    return 0; }
   | 
 
运行结果:

udp 客户端在2s 启动时向 udp 服务器发送了一个 1024 字节的数据包
尝试更改:
1 2 3 4
   | echoClient.SetAttribute ("MaxPackets", UintegerValue (5));  echoClient.SetAttribute ("Interval", TimeValue (Seconds (1.0)));  echoClient.SetAttribute ("PacketSize", UintegerValue (1024)); 
 
  | 
 
 运行结果:

 udp 客户端在2s 启动时开始向 udp 服务器发送 1024 字节的数据包,每隔 1s 发送一个